5.2 変数と関数の定義 101
y2+x3 に計算コマンドを実行すると計算結果は次のようになります. y2+x3= (x2+ sinx)2+x3
ここでは変数名を1文字で指定しましたが,これを複数文字で指定する場合は98ページを参照し てください.
変数への代入は数値だけなく,数式を代入することも可能です. 次にその例を示します.
• 数値: a= 245
• 多項式: p=x3−5x+ 1
• 多項式の商: b=x2−1 x2+ 1
• 行列: z= [ a b
c d ]
• 積分: d= ∫
x2sinxdx
この機能を活用すると色々な計算を効率的に行なえます.
Note 記号pは多項式x3−5x+ 1を表すための記号として定義された訳で,関数として定義さ れた訳ではありません. 実際,p(2)は多項式に2を代入した値にはならず,多項式を2倍し た p(2) = 2p= 2x3−10x+ 2となります.
デファード計算を使った関数を他の定義で利用する
既に定義した関数を他の関数で利用してもなんら問題はありません.例えば式r= 3p−cqを定義 し,次にs=nr+qを定義します. そしてsに計算コマンドを実行するとs=n(3p−cq) +qと いう計算結果が得られます. 式rの定義を変更して,再び式sに計算コマンドを実行すると,異な る結果が出力されることになります.
フル計算と代入
等号の前にコロンを付けて変数を定義するフル計算機能では,その時の値を保持します. つまり, 定義を行った時間的な順番にしたがって,自分よりも前に定義されている値を利用します.
• フル計算させるためには等号の前にコロンを付けます.
◮ z に25aを代入する
1. 数式モードでz:= 25aを入力します. 2. カーソルを式に配置します.
3. 数式処理ツールバーの新しい定義ボタン をクリック,または,関数定義サブメニュー から新しい定義コマンドを選択します. または,ctrl+=とします.
文書を閉じたり,変数の定義を削除しない限り,z には25aが代入されます. ただし,aが事前に x+yなどで定義されていたとすると,z の値は 25 (x+y)になります. 次に関数定義の両者の
用法の違いについて例を用いて説明します. 変数の定義を確認する場合は,関数定義 +定義の一 覧コマンドを利用します.
Example 7 変数a= 1,x:=a,y=a,a= 2を順番に定義します. そしてxとyに計算コマ ンドを実行します.
x= 1 y= 2
変数a=b,x:=a2,y=a2,a= 6を順番に定義します.そしてxとyに計算コマンドを実行し ます.
x=b2 y= 36
Example 8 式r= 3p−cq,s=nr+q,t:=nr+qを順番に定義します. そしてsとtに計 算コマンドを実行します.計算結果として
s=n(3p−cq) +q t=n(3p−cq) +q
が出力されます. ここで新たにr=x+yを定義します. sに計算コマンドを実行すると s=n(x+y) +q t=n(3p−cq) +q
となり,計算結果は変わりません.
5.2.2 1 変数の関数
関数を作成する場合は,先程解説した変数の定義と同じ方法で行ないます.
◮ 変数 xに対してax2+bx+cで表すことのできる関数f を定義する 1. 数式f(x) =ax2+bx+cを入力します.
2. 式にカーソルを配置します.
3. 数式処理ツールバーの新しい定義ボタン をクリック,または,関数定義サブメニュー の新しい定義を選択します.
◮ 関数定義+ 新しい定義 f(x) =ax2+bx+c
◮ 計算
f(t) =at2+bt+c f′(t) = 2at+b f(x+h) =a(x+h)2+b(x+h) +c
5.2 変数と関数の定義 103
関数を組合せて使う
最初に関数gとhを定義しておけば(ただし区間定義関数を除く),つぎに示すような関数を作 成することができます.
f(x) = 2g(x) f(x) =g(x) +h(x) f(x) =g(x)h(x) f(x) =g(h(x)) f(x) = (g◦h) (x) f(x) =g(x)/h(x)
関数g(x)とf(x) = 2g(x)を定義した場合,仮にg(x)の定義を変更すれば,f(x)もその変更を 反映します.
Note 関数同士の演算,例えばf+g,f−g,f◦g,f g,f−1 なども実行できます. 値xにおける f+gを求める場合はf(x) +g(x)とします. 2つの定義関数f とgの合成関数はf(g(x)) または(f◦g) (x)と記述します. さらに2つの関数の積はf(x)g(x)です. ある関数f(x) については,その逆関数をf(y) =x,変数をyとすることによって求めることができます. Example 9 n×1の行列に関数計算を実行して,計算結果の表を作成する.
1. 挿入メニューから行列を選択,または をクリックします. 2. 行数を6,列数を1とします.
3. 行列にカッコを付けます.行列を選択して または をクリックします.
4. 行列に5つのxの値を入力します
x 0 1 2 3 4
.
5. 関数f(x) =x2+ 3x+ 5を定義します.行列の前にf を付けて計算コマンドを実行します.
f
x 0 1 2 3 4
=
x2+ 3x+ 5 5 9 15 23 33
2つの行列にあるxとyの値を計算するには,各行列を隣り合わせにコピーします. マウス カーソルを行列の適当な場所に置き,行列サブメニューから連結を選びます.
x 0 1 2 3 4
x2+ 3x+ 5 5 9 15 23 33
,連結:
x 3x+x2+ 5
0 5
1 9
2 15
3 23
4 33
Tip 表に罫線をつけて表示する場合,挿入+表または をクリックして表を作成します. そして,各セルに値をコピーします. データの複製が完了したら,編集+プロパティとして 線のタブを表示して罫線の設定を行ないます.表を行列と同じように数式演算に利用するこ とはできません.
関数名を使って直接計算できる場合もあります.
◮ 計算
arctan
x 0 1 2 3 4
=
arctanx 0
1 4π arctan 2 arctan 3 arctan 4
何も計算が実行されない場合は,関数定義 +新しい定義コマンドで関数を定義しなおして,試し てみましょう.
◮ 関数定義+ 新しい定義 σ(x) = sinx
◮ 計算 σ(
x 0 1 2 3 4 )
=(
sinx 0 sin 1 sin 2 sin 3 sin 4 )
5.2.3 関数の引数としての下付き文字
下付き文字は関数の引数として利用する他にも,関数や変数の一部として利用することもできま す.次に用法の違いに関する例を示します.
1. 式ai= 3iを関数として定義します. 下付き文字の定義ダイアログで関数の引数を選択し ます.
2. 式bi= 3iを関数として定義します. 下付き文字の定義ダイアログで変数の一部を選択し ます.
このようにして定義した式に計算コマンドを実行した結果を次に示します. ai= 3i bi= 3i a2= 6 b2=b2
定義の一覧コマンドを選択すると,次に示すような定義内容が表示されます. ai= 3i(変数としての下付き文字)
bi= 3i
aiは引数iを持つ関数であり,biの下付き文字は単なる添え字です.
5.2 変数と関数の定義 105
Note 関 数 名 は 同 時 に 下 付 き 文 字 変 数 と イ ン ラ イ ン 変 数 を 取 る こ と は で き ま せ ん. 例 え ば fa(y) = 3ayを定義した場合,自動的にaは関数名の一部となり,yが引数となります. つ まり, fa(5) = 15a f2(5) = 5f2となります.
5.2.4 区間定義関数
区間ごとに異なる式で表記される関数を定義することができます. この種の関数は区間定義関数, 条件関数,または,多条件関数などと呼ばれます. この区間定義関数に対しては,微積分学で利用 される殆どの演算を適用することができます. 例えば,計算,プロット,微分,積分などのコマンド を実行できます.
Note ただし,区間定義関数の記述方法には厳密な決りがあります.
• 少なくとも2行2列,または3列の行列のなかに記述する必要があります. 1列目には 各区間の関数を記述します. 2列目には文字モードで“if”または数式モードで“if”と 書きます. ただし,行列が2列しかないときは,これを記述する必要はありません. そ して右端の列には区間を入力します.
• このように記述した行列の左にはカッコを付け,右側には次の例に示すような空カッコ を付けます.
区間を示す列の一番下のセルは,常に“それ以外の範囲”を示すものとして解釈されますの で,必ずしも記入する必要はありません.
◮ 区間定義関数の入力
1. 数式モードで次のように入力します.
f(x) =
2. ペアカッコのボタン をクリックし,左カッコに を選択します.そして右カッコに は空カッコ(縦の破線) を選びます. (縦の破線は,通常印刷されません. 表示+ヘル パーラインが選択されているときのみ,赤い破線と同様,画面に表示されます. )
3. アイコン をクリック,または挿入+行列とします. 4. 行数を区間の数だけ設定し,列数は3か2にします. 5. 左側のセルに関数を入力します.
6. 3つの列を作成した時:
(a)中央ののセルに“if”と文字モードか,または,数式モードで入力します.
(b)範囲を3番目の列に入力します. または
2つの列を作成した時:
(a)2列目の先頭に文字モードで“if”と書いてもかまいませんし,何も書かなくても問題は ありません.
(b)その後ろに範囲を記述します.
3列の行列の記述例を次に示します. この行列を記述する場合はなるべく,表示メニューからヘル パーラインを選択して画面に表示します.
f(x) =
x+ 2 if x <0 2 if 0≤x≤1 2/x if 1< x
g(x) =
x+ 2 if x <−2 x if −2≤x <0
2 if 0≤x
2列の行列の記述例を次に示します. h(t) =
{ t ift >0
0 ift≤0 k(x) =
{ x+ 2 x <1 3/x 1≤x
区間定義関数のプロット方法に関する詳細は156ページを参照してください.
◮ 区間定義関数を定義する
1. 既に説明したカッコ付きの行列に関数を記述します. 2. 関数の任意の位置にカーソルを配置します.
3. アイコン をクリック,または関数定義サブメニューの新しい定義を選択します. 目的の値を求める場合は計算コマンドを実行します. 次に計算例を示しますf(−1) = 1,f(12) = 2, f(2) = 1,h(−1) = 0または
g(t+ 1) =
t+ 3 if t+ 1<−2 t+ 1 if −3−t≤0 (and)t+ 1<0
2 if otherwise
Note 区間定義関数の計算,プロット,微分,積分を行なう場合は最初に関数の定義を行ないます. そして,定義した関数名f やf(x)を使って計算を行ないます. 演算を行なう場合は,必ず カーソルを関数の中に配置する必要があります.
5.2.5 汎用関数として定義する
汎用的な関数f(x)だけを定義する場合は,関数定義 +新しい定義コマンドを利用します. この 時,関数の具体的な数式を右辺に表記しません. 他の関数名を同時に定義して演算などにも利用で きます.次にその例を紹介します.
◮ 関数定義 + 新しい定義
f(x) g(x) =x2−3x
◮ 計算 f(g(x)) =f(
x2−3x)
g(f(x)) =f2(x)−3f(x)